<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>uim正式线部署管理控制台</title>
    <meta name="description" content="uim部署管理控制台">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, user-scalable=no, minimal-ui">
    <link rel="stylesheet" media="screen, print" href="css/index.css">
</head>

<body>
    <iframe></iframe>

    <!-- indlude js -->
    <script src="./js/hex.js"></script>
    <script src="./js/jquery-3.3.1.min.js"></script>
    <script src="./js/socket.io.js"></script>
    <script src="./js/uim.js?t=20200818"></script>

    <script>

        window.uim_readly = function () {
            window.console_socket = io.connect(uim.config.socket_server);
            console.log('已连接，socket_id：', console_socket.id)

            // 设置自定义接口请求方式
            uim.api.set_method('console-socket', function (req, callback) {
                // 如果已经登录则在请求体中添加会话信息
                if (uim.session.id) {
                    req.session_id = uim.session.id;
                }

                // 使用console_socket发送接口请求
                console_socket.emit('api', req, function (data) {
                    // 接口执行完毕回调
                    callback(null, data);
                });
            }); // 设置接口请求方式

            var init_success = false; // 是否初始成功

            console_socket.on('init', function () {
                console.log('开始校验')
                // 自定义校验方式
                var check_data = {
                    init_id: uim.init_id,
                    deploy_app_id: uim.init_param.deploy_app_id, // 虽然在自定义模式下服务器端可能只有一个应用，但为避免后期在同一域名部署其他应用造成冲突，仍应当对deploy_app_id进行校验
                    session_id: uim.session.id,
                    url: location.href,
                    referrer: document.referrer,
                };
                console_socket.emit('check', check_data, function (err, result) {
                    console.log('校验结果', { err: err, result: result })
                    if (err) {
                        // 显示错误信息
                        init_success || document.write(err);
                        alert(err);
                    } else {
                        // 通过校验
                        console.log('init_id:', result.init_id);

                        // 如果服务器返回了初始编号，则保存下来
                        if (result.init_id) {
                            uim.set('init_id', result.init_id);
                        }
                        // // 如果服务器返回了会话编号，则保存下来
                        // if (result.session_id) {
                        // }
                        uim.session.id = result.session_id;
                        // uim.save('session');
                        // 如果服务器返回了账户编号，则保存下来
                        // if (result.account_id) {
                        // }
                        uim.session.account_id = result.account_id || '';
                        // uim.save('session');

                        if (init_success) {
                            // 如果已经初始成功过，则说明本次为断线重连，不再执行下方业务代码
                            return;
                        }
                        init_success = true;

                        //进入业务界面
                        uim.view(uim.session.account_id ? (localStorage.main_view || 'main') : 'login');
                    }
                });
            });
        }
    </script>

    <!-- uim.init({...}) -->
    <script src="./js/uim.init.js?t=20200818"></script>
</body>

</html>